<?php

/**
 * TournamentTeam form.
 *
 * @package    ingenyo
 * @subpackage form
 * @author     Your name here
 */
class TournamentTeamForm extends BaseTournamentTeamForm
{

  public function configure()
  {
    unset($this['created_at'], $this['updated_at']);

    #lo seteamos como hidden porque se recibe por parametro
    $this->setWidget('tournament_id', new sfWidgetFormInputHidden());

    $this->getWidget('team_id')->setOption('multiple', true);

    # sino es nuevo!

    $this->getValidator('team_id')->setOption('multiple', true);

  }
  #este metodo lo escribo para  guardar las relaciones Na N nose porque no lo hace solo el widget cuando le  digo multple
  protected function doUpdateObject($values)
  {
    parent::doUpdateObject($values);
    TournamentTeamPeer::doDeleteForUpdate($this->getObject());
    #saco el primero que ya fue procesado por el parent de arriba
    $this->getObject()->setTeamId(array_shift($values['team_id']));
    $this->getObject()->save();
    #listos los valores para lso demas

    foreach($values['team_id'] as $team_id){
      $tournament_team = new TournamentTeam();
      $tournament_team->setTeamId($team_id);
      $tournament_team->setTournamentId($values['tournament_id']);
      $tournament_team->save();
    }

  }

  protected function updateDefaultsFromObject()
  {
    parent::updateDefaultsFromObject();

    if (isset($this->widgetSchema['team_id']))
    {
      $values = array();
      foreach ($this->object->getTeams() as $team)
      {
        $values[] = $team->getId();
      }
      $this->setDefault('team_id', $values);
    }
  }




}
